Greg Detre
@14:30 Friday, October 11, 2002
story:
Symantec was founded selling Q&A, a natural language database product
n ==>
[X] :- n(X).
n(toad).
n(frog).
etc.
in Prolog,
�=� is defined by �X = X� � built-in
strings are
in double-quotes
upper-case
atoms are in single-quotes
non-terminals
thread string positions
s --> np, vp.
s(P0, P) :- np(P0, P1), vp(P1, P).
when it reads in the file, it turns the first line into the second line
terminals(in
brackets) thread directly
escapes to
Prolog (in braces) don�t thread string positions
that is, they don�t undergo the transformations
to utilise
this notation:
s([frog, met, toad], []).
s([frog|Rest],[]).
what sentences start with �frog ��?
non-terminals
are no longer atomic � they have arguments, so they have (arbitrary) structure
so how do
we get the np and vp to agree? add an extra argument
problem
with combinatorial explosion if you keep adding these agreement arguments?
sometimes adding arguments can make it more
efficient (because it can prune better)
it depends � I need to find out how the execution model works???
David: this
way, every time we want to add an argument, we have to change the grammar
why not have the argument as a list of subcategorisation features?
Dev: lookup table
build a term out of a function symbol and some arguments
types of
verbs:
infinitival � e.g. �to ��
finite � has tense information, e.g. �goes�
non-finite � e.g. �go�
past participal � e.g. �gone�
progressive � e.g. �going�
�/�
e.g. �aux(Form/Required)�
it�s a function symbol � convention??? could have put it in two
different arguments
rather than
listing all the forms, the right thing to do is to build a morphological
analyser in Prolog that generates them for you
represent
parse trees as terms
pass the parse tree in as an argument if you�re trying to discern not
just whether a string is generable by the grammar, but its structure
we could do it like either of these:
pt(s,[pt(np,[frog]),pt(�
s(np(frog),vp(left))�������������������������� less typing, but often not as good as the former
meaning is
based somehow on the string�s structure
e.g. �I saw her duck�
ken church:
ambiguous between a sentence and a noun phrase
�I see a bee�
each of those terms are nouns (letter �I�, the holy �see�, letter �a�,
�bee�)
English allows noun noun compounds, e.g. metal bread knives
how could
you incorporate meaning?
representation of the real world � denotational semantics, i.e. logic
denotational semantics:
denote � Mark out;
distinguish by a mark or sign. L16. 2 Indicate; be an outward or visible sign
of. L16.b Give to understand; make known. M17. <unknown>3 Note down;
describe. Only in 17. 4 Signify; be a symbol for or a name of. M17.
denotation (dictionary
meaning) vs connotation (meaning we give to it)
denotation
/di:n<schwa>(U)"teI<longs>(<schwa>)n/ n.M16. [Fr.
d�tation or L denotatio(n-), f. denotat- pa. ppl stem of denotare: see
DENOTE, -ATION.]1 The action of denoting; expression by marks, signs, or symbols;
indication. M16.b A mark etc. denoting a thing; a sign. M17. 2 The meaning or
signification of a term, as distinct from its implications or connotations.
E17. 3 A term used to describe something; a designation. M17. 4 Logic. The
object or range of objects which a word denotes; extension. M19.
denotational relation between words and things
� words denote things
i.e. that words denote some things and not others, right???
number vs numeral
they want the phrases of a logic to denote
things
we want to know, for every word/phrase in
English, what it�s denotation is
but you need a notation for representing the
world
so we�re going to use some other logic to denote the world
it�s going to look as though we�re translating from English to logic,
but since that logic is a notation for the world, you�re really only using that
logic as an expedient for English denoting the world
you�re going to need propositions in your logic
frog meets
toad:
meet(frog, toad)
holds(meet, frog, toad)
Davidsonian???
meeting holds of certain events
thereIsAn(e) AND meeter(e,frog) AND meetee(e,toad)
lambda(x)
meet(x,toad)
where lambda is a function from objects to propositions (and then to
truth values???)
Richard Montague preferred x(hat) to Church�s
lambda notation
so our logic has to include FOL plus the lambda
stuff
(lambda(x)P)Question � P[x |� Q]
(lambda(x) lambda(y) p(x, f(y)))a � lambda(y) p(a, f(y))
(lambda(x) lambda(x) p(x, f(x)))a � lambda(x) p(a,f(a))
what is our intuition about what this is
supposed to mean???
we want to be able to rename variables and not
change what the notation means
�most� is
not expressible in FOL
why???
write a
natural language interface to a software system
pick a software system, one that you�re familiar with
imagine you�re going to interact with it in natural language
why are you going to interact with it in NL? not necessarily because
it�s the best interface�
there seem to be very few pieces of software
for which NL is the best interface, because people aren�t selling them
but that�s because they don�t work
it doesn�t matter if it�s lame
dancing bear � it�s not that it dances so well, but that it dances at
all
don�t worry about practicality � shouldn�t just
be signal processing
the successful NL interfaces are just low-level
we�re interested in higher-level � syntax, semantics etc.
proposal
due on Friday
Quake idea:
the scene-descriptor might change the emphasis from kiling to
interaction in some way
better still, it might allow players on the same team playing over the
internet to automatically describe where they are to help them find each other
prolog as a
NDFA???
so is the
DCG with extra arguments still CF???
to allow
Prolog to take context into account, you need to maybe add arguments
but how would you ground Prolog�s stuff semantically??? how would you
get it to disambiguate based on semantics??? can you do things
probabilistically???